Method and apparatus for broadcasting media objects with guaranteed quality of service

ABSTRACT

A method and apparatus for broadcasting media objects for such bandwidth-intensive applications as Media on Demand (MoD) or Video on Demand (VoD) employ a novel StairCase Broadcast (SCB) scheme. A media server in accordance with one example of the invention includes a fragmenter that fragments media objects into multiple segments, with each segment provided to a corresponding streamer. Each streamer periodically and continuously streams data associated with its corresponding media segment on a connection between the server and a media client. A download controller in the media client selectively causes the proper streams to be received for downloading from the server in accordance with the fragmentation of the selected media object and the number of streams that the client can simultaneously receive for downloading. A selector is operable to cause data from each successive segment to be downloaded from the corresponding stream immediately regardless of the position in the period associated with the successive segment. By its design, the method and apparatus of the present invention allow for lossless broadcast of media contents with de-coupled per-media-object server and client bandwidth design considerations.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is based on, and claims priority from, U.S. Provisional Application No. 60/222,253, filed Aug. 1, 2000 and entitled “A Lossless Staircase Broadcast Scheme for Multimedia Contents Delivery,” commonly owned by the present assignee, the contents of which are incorporated herein by reference.

FIELD OF THE INVENTION

This invention relates generally to streaming media objects and, more particularly, to broadcast schemes for streaming media objects on demand from a server to a client over a digital network.

BACKGROUND OF THE INVENTION

Media-on-Demand (MoD), and in particular Video-on-Demand (VoD), is becoming a popular digital network application. One highly scalable scheme known for facilitating MoD and VoD, and reducing the cost of MoD and VoD especially for popular media objects, is called periodic broadcast. In this scheme, media objects are broadcast periodically, and multiple users are served via one single transmission, thus substantially reducing the bandwidth requirements for the most frequently requested media objects. Most current periodic broadcast schemes assume Constant-Bit-Rate (CBR) encoded media objects rather than Variable-Bit-Rate (VBR) encoded media objects. This is despite the fact that, for the same video and the same desired image quality, CBR encoding requires twice or more bandwidth than that required for VBR encoding. However, the few existing proposals that support the bandwidth-efficient family of VBR encoded media objects suffer from data loss because they allow the aggregate traffic of the simultaneously-transmitted segments of the media contents to exceed the broadcast link capacity. Accordingly, there are no existing schemes that can provide lossless delivery of media content while guaranteeing a minimum latency and quality of service, while also allowing bandwidth requirements on both the sending and receiving ends to be easily designed.

SUMMARY OF THE INVENTION

The present invention relates to a method and apparatus for broadcasting media objects for such bandwidth-intensive applications as Media on Demand (MoD) or Video on Demand (VoD) in accordance with a novel StairCase Broadcast (SCB) scheme. A media server in accordance with one example of the invention includes a fragmenter that fragments media objects into multiple segments, with each segment provided to a corresponding streamer. Each streamer periodically and continuously streams data associated with its corresponding media segment on a connection between the server and a media client. A download controller in the media client selectively causes the proper streams to be received for downloading from the server in accordance with the fragmentation of the selected media object and the number of streams that the client can simultaneously receive for downloading. A selector is operable to cause data from each successive segment to be downloaded from the corresponding stream immediately regardless of the position in the period associated with the successive segment. By its design, the method and apparatus of the present invention allow for lossless broadcast of media contents with de-coupled per-media-object server and client bandwidth design considerations.

In accordance with one aspect of the invention, a method for providing a media object to a client from a server coupled to the client via a connection, the media object being fragmented into segments in accordance with a fragmentation sequence from a first segment to a last segment, each segment comprising a respective number of frames of media content in a respective succession from a first frame to a last frame, comprises the steps of causing the media content associated with each of the segments to be provided on a corresponding stream in accordance with the succession from the first frame to the last frame, providing a first number of the streams on the connection, the first number of the streams including the corresponding stream to the first segment, halting the provision of the corresponding stream to the first segment on the connection when the respective number of frames of the first segment have been provided on the corresponding stream, providing a next stream corresponding to a next segment in the fragmentation sequence on the connection after the halting step, and starting the step of providing the next stream at a point in the respective succession between the first frame and the last frame.

In accordance with a further aspect of the invention, an apparatus for providing a media object to a client from a server coupled to the client via a connection, the media object being fragmented into segments in accordance with a fragmentation sequence from a first segment to a last segment, each segment comprising a respective number of frames of media content in a respective succession from a first frame to a last frame, the apparatus comprises means for causing the media content associated with each of the segments to be provided on a corresponding stream in accordance with the succession from the first frame to the last frame, means for providing a first number of the streams on the connection, the first number of the streams including the corresponding stream to the first segment, means for halting the provision of the corresponding stream to the first segment on the connection when the respective number of frames of the first segment have been provided on the corresponding stream, means for providing a next stream corresponding to a next segment in the fragmentation sequence on the connection after the halting step, and means for starting the step of providing the next stream at a point in the respective succession between the first frame and the last frame.

In accordance with a further aspect of the invention, a method of fragmenting a media object into a fragmentation comprising a plurality K_(m) of segments, the segments having a sequence from a first segment to a last segment, the media object having a plurality N_(m) of frames of media data, the method comprises the steps of initializing the fragmentation to K_(m)=N_(m) segments, each segment containing one frame, determining, for each of the K_(m) segments, a corresponding bandwidth required to download the segment, combining two successive segments in the sequence into a new segment, and controlling the combining step so as to minimize a total variance between the corresponding bandwidth for each of the K_(m) segments.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures, wherein:

FIG. 1 illustrates an example topology of a server and client for streaming a media object in accordance with one embodiment of the present invention;

FIG. 2 is a structural block diagram of an example media server and media client in accordance with one embodiment of the present invention;

FIG. 3 is a graph illustrating an example implementation of a StairCase Broadcast (SCB) scheme in accordance with one embodiment of the present invention;

FIG. 4 is a flowchart illustrating an example method of streaming a media object from a server to a client in accordance with one embodiment of the present invention; and

FIG. 5 is a flowchart illustrating an example method of optimizing server and client bandwidth for streaming a media object in accordance with one embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention will now be described in detail with reference to the drawings, which are provided as illustrative examples of the invention so as to enable those skilled in the art to practice the invention. Notably, the implementation of certain elements of the present invention may be accomplished using software, hardware or any combination thereof, as would be apparent to those of ordinary skill in the art, and the figures and examples below are not meant to limit the scope of the present invention. Moreover, where certain elements of the present invention can be partially or fully implemented using known components, only those portions of such known components that are necessary for an understanding of the present invention will be described, and detailed descriptions of other portions of such known components will be omitted so as not to obscure the invention. Further, the present invention encompasses present and future known equivalents to the known components referred to herein by way of illustration.

FIG. 1 illustrates an example topology in accordance with one embodiment of the present invention.

As shown in FIG. 1, a media server 102 communicates with a media client 104 over a connection 106. Communications from media server 102 can include media content from media store 108 that has been encoded by media encoder 110. The media content is downloaded from media server 102 to media client 104 and stored in download storage 112 so that it can be played back for perception by a user associated with media client 104 through a player 114.

Media content can include audio, video and combinations thereof. For example, the media content can be feature movies, TV news, talk shows, live sporting events, distance learning courses, home banking, commercial advertisements, e-commerce activities, etc.

Connection 106 can be, for example, a digital cable or satellite network. Although the present invention will be described in detail with reference to this example implementation, it should be noted that the invention can be extended to other types of networks such as LANs, WANs, MANs or the Internet, and combinations thereof. Further, connections can be wired or wireless, and may further include gateways between different types of connections.

Media encoder 110 implements standard encoding techniques. The media contents are often encoded before their transmission in order to reduce bandwidth and storage requirements. The broadcasting scheme of the present invention can be used in conjunction with various encoding schemes such as those provided by the Moving Pictures Expert Group (MPEG), H222.1, Joint Photographic Expert Group (JPEG), H.261, Multimedia & Hypermedia Information Coding Experts Group (MHEG), Digital Storage Media Command & Control (DSM CC), Digital Audio Visual Council (DAVIC), H.323, etc. The encoded media content (e.g. an MPEG file) from media encoder 110 is provided to media store 108, which can be implemented by any type of permanent or temporary recordable medium. In one example of the invention, Variable Bit Rate (VBR) encoding of media objects is used, wherein each frame of the encoded media object may contain a variable number of bits. However, the invention is not necessarily limited to this example, and Constant Bit Rate (CBR) encoded media objects may also be used.

Generally, media server 102 is responsible for broadcasting media content on connection 106 and media client 104 is responsible for controlling the reception and downloading of the broadcasted media content from media server 102 and for providing the downloaded content to media download store 112 in substantially the same format as the content existed in media store 108 (e.g. an MPEG file).

Player 114 is capable of recognizing and understanding the encoding used on the media content by media encoder 110 and for decoding the downloaded media data in accordance with the encoding used. For example, where the media content has been encoded by media encoder 110 using MPEG techniques, player 114 includes a MPEG decoder. Although shown separately, player 114, media client 104 and download storage 112 may be combined together in various ways or in one device. In one example of the invention, media client 104, download storage 112 and player 114 are comprised together of hardware and software in a set-top box.

It should be noted that server 102 preferably includes the ability to communicate simultaneously with many clients 104 over different connections 106, although only one client and associated connection is shown in FIG. 1.

FIG. 2 illustrates in more detail an example media server 102 and media client 104 in accordance with one embodiment of the present invention.

As shown in FIG. 2, media server 102 includes a fragmenter 204 and streamers 206, and client 104 includes a download controller 208 and selector 210.

Generally, in operation, media server 102 accesses media objects 202-1 to 202-M from media store 108. Each of these media objects is broken up into segments by fragmenter 204, and each of the segments is provided to a respective streamer 206. Each segment is continually and periodically broadcast on connection 106. Download controller 208 listens on the connection 106 for streams containing the desired media object and causes selector 210 to download the streams from the connection 106 into media download store 112. In one example of the invention, client 104 includes the ability to download several streams simultaneously from the server 102. Selector 210 thus enables this number of streams to be simultaneously stored in download store 112.

It should be noted that media server 102 preferably includes the ability to communicate simultaneously with many clients, but an example of communicating with only one client 104 is shown in FIG. 2 for ease of illustration. It should be further noted that server 102 and client 104 can include many other components for facilitating the broadcast and downloading of data on connection 106. The selection and structure of such additional components may depend on the type of connection (e.g. digital cable or Internet, wired or wireless) as will be understood by those skilled in the art. Accordingly, even further detailed descriptions of such additional components is not necessary for an understanding of the present invention.

In one example of the invention, media server 102 uses a periodic broadcast scheme for downloading the segments of each media object. In this example, after fragmenter 204 partitions each entire media object 202 into smaller successive and non-overlapping segments, each segment is continuously and periodically broadcast on a separate stream by a respective one of the streamers 206 at a certain bit rate (i.e. bandwidth). The streamers can be implemented in various straightforward ways familiar to those skilled in the art using conventional buffers and network interfaces, and so even further detailed discussion thereof is not necessary for the present invention. The media server 102 simply follows the broadcast scheme of the present invention to transmit media segment in a separate stream channel at the specified bit rate periodically and continuously.

When a client wants to download a media object from the server, download controller 208 listens for the streams that correspond to the desired object and causes selector 210 to collect data from the corresponding streams in the proper sequence (and for the proper duration so as to provide all the content for the associated segment) on the connection from the server.

Consider a server 102 having access to a plurality of media objects 202-1 to 202-M. Fragmenter 204 thus divides the m^(th) media object (1≦m≦M) into K_(m) segments, which may each have a different size corresponding to the number of frames in the segment and the number of bits in each frame. Fragmenter 204 provides each segment to a respective one of streamers 206 for broadcasting over connection 106. Let S_(m) ^(i) denote the set of successive frames in the i^(th) segment of the m^(th) media object. The server thus broadcasts, as a whole, $\sum\limits_{m = 1}^{M}K_{m}$ media streams simultaneously, with each streamer 206 simultaneously and periodically broadcasting the same segment S_(m) ^(i) of the same m^(th) media object. Let |S_(m) ^(i)| denote the number of frames in the segment S_(m) ^(i). The total number of frames N_(m) in the m^(th) media object is thus given by: $\begin{matrix} {N_{m} = {\sum\limits_{i = 1}^{K_{m}}{S_{m}^{i}}}} & \left( {{Eq}.\quad 1} \right) \end{matrix}$

In one example of the media server 102 of the present invention, each of the K_(m) segments for the m^(th) media object is continuously and periodically transmitted by a separate streamer 206 at a corresponding bandwidth of b_(m) ^(i)(i=1 , . . . , K_(m)). Let B_(m)(S_(m)) denote the total required server bandwidth to transmit the m^(th) media object for a given transmission schedule (i.e. fragmentation) S_(m). Thus, the total bandwidth necessary to transmit the m^(th) media object for the media server given a fragmentation S_(m)={S_(m) ¹, . . . , S_(m) ^(K) ^(m) } is: $\begin{matrix} {{B_{m}\left( S_{m} \right)} = {\sum\limits_{i = 1}^{K_{m}}{b_{m}^{i}\left( S_{m} \right)}}} & \left( {{Eq}.\quad 2} \right) \end{matrix}$

Let U_(m)(1≦U_(m)≦K_(m)) stand for the number of streams that the client can download simultaneously for the m^(th) media object. The client downloads media data from the U_(m) streams as long as there are more segments to be downloaded from subsequent streams of the m^(th) media object. Moreover, the download of each of the first U_(m) segments starts at the same time. Let B_(c,m)(S_(m)) denote the required client bandwidth to download the m^(th) media object for a given fragmentation or transmission schedule S_(m). Thus, the total bandwidth necessary to download all of the segments of the m^(th) media object for the client given a fragmentation S_(m)={S_(m) ¹, . . . ,S_(m) ^(K) ^(m) } is: $\begin{matrix} {{B_{c,m}\left( S_{m} \right)} = {\max\limits_{1 \leq i \leq {K_{m} - U_{m} + 1}}{\sum\limits_{j = 1}^{i + U_{m} - 1}b_{m}^{j}}}} & \left( {{Eq}.\quad 3} \right) \end{matrix}$

It should be apparent from the above Eqs. 2 and 3 that the required per-media object server and client bandwidth are de-coupled. That is, they can be separately designed and manipulated for separate server bandwidth constraints and client bandwidth constraints, although they will be somewhat related given that they are both determined from the per-segment streaming bandwidths of the media object. However, whereas the maximum server bandwidth can be designed to be a constant aggregate bandwidth, the maximum client bandwidth can be designed as simply the maximum of any aggregate of simultaneous streams downloaded by the client.

The operation of the broadcast scheme of the present invention will now be described in more detail with reference to FIG. 3.

In FIG. 3, graph 302 represents the playback of the m^(th) media object at the client and graph 304 represents the download of the media object m from the continuous and concurrent periodic broadcast of four example segments S_(m) ^(i)(i=1 to 4) of the media object. The maximum number of streams that the client can download simultaneously, i.e., U_(m), is 2 in this example. Graph 304 shows that each of the four segments is periodically and continuously transmitted on a separate stream 306 at bandwidth b_(m) ^(i). That is, each streamer 206 corresponding to streams 306 broadcasts one of the four segments S_(m) ^(i)(i=1 to 4) from beginning to end, then re-broadcasts the same segment from beginning to end again, with the process continuing throughout an operation period of the media server 102.

For example, as shown in FIG. 3, stream 306-1 contains data from segment S¹ _(m), comprising |S_(m) ^(i)| frames in a sequence from a first frame f₁ to a last frame f_(n). The succession of frames in segment S¹ _(m) is streamed from beginning to end at a bandwidth of b¹ _(m), and then streamed from beginning to end again at the same bandwidth, with the beginning of the sequence being re-started periodically with a period P. It should be noted that, in this example, the period P is the same as the time required to stream the |S_(m) ^(i)| frames of segment S¹ _(m). However, the invention is not limited to this example. It should be further noted that, although not shown, the data broadcast in each stream may contain some tag information that identifies the media object corresponding to the stream, the segment in the fragmentation sequence, the number of frames in the segment and (if the tags are provided in each frame) the frame number in the segment.

The shaded areas 308 in the download graph 304 correspond to the information that is actually downloaded by the client 104 from each of the streams 306 via selector 210. Once the entire information in the i-th segment S_(m) ^(i) is downloaded to the client, downloading of the (i+U_(m))-th segment will immediately commence, as long as (i+U_(m))≦K_(m) for the selected media object m. According to the broadcast schedules of the present invention, the i-th segment should not be fully downloaded before the (i−1)-th segment, so as to minimize the required bandwidth for each segment. As can be seen, in this example of the invention, the client starts downloading when it can, and need not wait for the time corresponding to when the beginning frame in the respective segment is being broadcast.

More particularly, as shown in the example of FIG. 3, at time t₀ (preferably corresponding to a time when the client first makes a request for media object 202-m), the first U_(m)=2 segments begin downloading to the client via streams 306-1 and 306-2. Note that it is not necessary that t₀ correspond to a time when streams 306-1 and 306-2 contain the first frame f₁ of the corresponding first and second segments. However, downloading via streams 306-1 and 306-2 continues until all |S_(m) ^(i)| of the frames in the sequence are downloaded. Accordingly, as shown in FIG. 3, at time t₁, all the frames in the segment S_(m) ^(i) corresponding to stream 306-1 have been downloaded, at which point the next successive segment begins downloading via stream 306-3. Again, it should be noted that time t₁ need not correspond to a time when stream 306-3 contains the first frame f₁ of the corresponding third segment.

On the client side, as shown in graph 302, each segment S_(m) ^(i) can be immediately played back after it is completely stored at the client. This scheme is called StairCase Broadcast (SCB) because the shaded areas in the download graph 304 of FIG. 3 (the data actually downloaded at the client from the broadcasted sequence of segments) look like a downward staircase as time progresses. Accordingly, as shown in FIG. 3, at time t₁, segment S_(m) ^(i) begins being played back at the client immediately after downloading that segment has completed. Likewise, at time t₂, segment S² _(m) begins being played back at the client immediately after downloading that segment has completed.

Following the example of the invention illustrated in FIG. 3, and to guarantee the service latency w_(m) for the m^(th) video, it can be seen that the first segment must be broadcast at a bandwidth given by: $\begin{matrix} {{b_{m}^{1}\left( S_{m} \right)} = \frac{\sum\limits_{i \in S_{m}^{1}}f_{m}^{i}}{w_{m}}} & \left( {{Eq}.\quad 4} \right) \end{matrix}$ where ƒ_(m) ^(i) denotes the number of bits in the i-th frame of the media object m.

More generally, to insure continuous and timely playback of the entire media object 202-m by the client 104, the segment, S_(m) ^(i), should be fully downloaded and available at the client just before the end of the playback of the previous segment in the media object S_(m) ^(i−1). Thus, the bandwidth at which the streamer 206 corresponding to the i^(th) stream of the m^(th) video must broadcast segment S_(m) ^(i) is determined by: $\begin{matrix} {{b_{m}^{i}\left( S_{m} \right)} = \left\{ \begin{matrix} {\frac{\sum\limits_{j \in S_{m}^{i}}f_{m}^{j}}{w_{m} + \frac{\sum\limits_{j = 1}^{i - 1}{S_{m}^{j}}}{F}},} & {1 \leq i \leq U_{m}} \\ {\frac{\sum\limits_{j \in S_{m}^{i}}f_{m}^{j}}{\frac{\sum\limits_{j = {i - U_{m}}}^{i - 1}{S_{m}^{j}}}{F}},} & {U_{m} < i \leq K_{m}} \end{matrix} \right.} & \left( {{Eq}.\quad 5} \right) \end{matrix}$ Overall, after the service latency of w_(m) seconds, uninterrupted playback of the media object 202-m is possible as long as the above bandwidth constraints are satisfied so as to allow each segment S_(m) ^(i) to be downloaded and available on local storage at the client just in time for its playback. The media object can thus be played back at its nominal frame rate of F frames per second in the order of S_(m) ¹·S_(m) ²·S_(m) ³ . . . S_(m) ^(K) ^(m) . Note that in this example of the invention where VBR encoded media objects are used (wherein the frames can have different sizes), the playback curve 302 of FIG. 3, which represents the per-frame consumed data, is also variable.

It should be further noted that the loss-less nature of SCB is evident since the aggregation of the bandwidth required for all the K_(m) segments of m^(th) media object is constant as described by Eqs. (2) and (5), given a desired service latency and fragmentation sequence. Moreover, Eqs. (2) through (5) show that a fragmentation sequence S_(m) for the m^(th) media object can be designed for a desired maximum client bandwidth B_(c,m)(S_(m)), maximum server bandwidth B_(m)(S_(m)) and service latency w_(m).

An example method of broadcasting a media object in accordance with one embodiment of the present invention is illustrated in the flowchart of FIG. 4. It should be apparent that the invention is not limited to broadcasting a single media object; however a method of broadcasting only one media object is described for ease of illustrating the invention.

As shown in FIG. 4, the media object is encoded in block S402. In block S404, the media object is fragmented into segments. In block S406, each segment is broadcast, continuously and periodically, on a separate stream. In block S408, it is determined whether a request for the media object has been made by a user or requesting process associated with the media client. If so, processing advances to block S410, where the first U_(m) streams corresponding to the first segments of the media object are selected for downloading by the client simultaneously. It should be noted that downloading of data from streams is preferably begun immediately after the request is received rather than waiting for a point in time where the beginning frame of the segments is being streamed. Downloading of the U_(m) segments continues until data corresponding to an entire segment has been streamed toward the client. For each of the U_(m) segments being downloaded, in block S412 it is determined whether all data corresponding to the segment has been downloaded. If so, processing advances to block S414, where it is further determined if there are any remaining segments to be downloaded by the client. If so, the stream corresponding to the next segment in the fragmentation sequence is immediately selected for downloading by the client (block S414). Otherwise, processing returns to block S406 until a new client request for the media object is received.

An example method of fragmenting a media object in accordance with an embodiment of the present invention, as can be performed in block S404 in FIG. 4, will now be described.

As set forth above, the SCB scheme of the present invention facilitates design, by appropriate fragmentation of a media object, a maximum server bandwidth and a maximum client bandwidth for a desired service latency. Given the separate bandwidth equations for the server (Eq. 2) and the client (Eq. 3), however, it should be noted that an optimal solution for the server bandwidth is not necessarily optimal for the client bandwidth. Furthermore, given the variety of schedules S_(m)={S_(m) ¹, . . . ,S_(m) ^(K) ^(m) } that can result from different fragmentations of each media object m, the server bandwidth minimization can become quite complicated.

As seen from Eq. 2, to achieve the minimal required server bandwidth, a fragmentation of the frame sequence with K_(m) segments should be determined such that the sum of the necessary bandwidth to broadcast each segment can be minimized. On the other hand, from Eq. 3, to minimize the client bandwidth, a fragmentation of the frame sequence with K_(m) segments should be determined such that the maximum of the sum of the necessary bandwidth to broadcast any U_(m) consecutive segments can be minimized. It is observed that the closer the necessary bandwidth for each segment is to all other segments in a given fragmentation, the lower the sum will be for any U_(m) consecutive segments and the lower the total necessary bandwidth will be for all the segments. Therefore, the optimal solution can be approximated by picking the fragmentation with the closest necessary bandwidth to broadcast each segment.

FIG. 5 is a flowchart for illustrating a near-optimal solution for minimizing both server and client bandwidth in accordance with one embodiment of the present invention. As can be seen, it is very simple and intuitively appealing. First, in block S502, the fragmentation S_(m) is initialized to N_(m) segments (i.e. K_(m)=N_(m)), each segment thus consisting of one and only one frame. Next, in block S504, the necessary bandwidth for each segment, b_(m) ^(i)(S_(m)), is computed according to Eq. 5. In block S506, the two neighboring segments that will cause the total difference Δ(S_(m)(K_(m))) between the necessary bandwidth among all of the current segments (Σ|(b_(m) ^((i+1))−b_(m) ^(i))|(i=1 . . . K_(m)−1)) to be minimized are identified. These two segments are then merged into one segment (block S508) and K_(m) is decremented. Next, it is determined whether the new total difference is less than the previous total difference Δ(S_(m)(K_(m+1))) (block S510). If not, use the fragmentation S_(m)(K_(m+1)) that resulted from the previous iteration (block S512). Otherwise, processing returns to block S504 until the total difference cannot be minimized any further (as determined from block S510). The running time for this algorithm is on the order of O(N_(m) ²) and the space requirement is on the order of O(N_(m)).

It should be noted that the novel broadcast scheme according to the present invention, called StairCase Broadcast (SCB), supports, by its design, both the lossless periodic broadcast of VBR encoded media contents and de-coupled per-media-object server and client bandwidth constraints. Moreover, the particular structure and distribution setup for media content according to the invention does not require the start of downloading each segment to be coincident with the time when the beginning frame of the segment is being broadcast. Further, once the first segment of the selected media object is fully downloaded, the present invention allows for the continuous playback of the media content at the client to be guaranteed.

It should be further noted that the SCB scheme of the present invention significantly differs from the smoothing related techniques such as the optimal smoothing scheme by Salehi et al., “Supporting Stored Video: Reducing Rate Variability and End-to-End Resource Requirements Through Optimal Smoothing,” IEEE/ACM Transactions on Networking, 6(4):397-410, August 1998, in the sense that the optimal smoothing approach aims to reduce the rate variability for the transmission of stored VBR-encoded video given a limited client buffer capacity. Meanwhile, the SCB scheme of the present invention essentially forces each periodically-broadcasted media segment to be smoothed during each segment duration such that the loss-less nature of SCB can be guaranteed. In SCB, the segment duration is not determined by the client buffer capacity but by the timing requirement of broadcast schedules to guarantee the uninterrupted and continuous play-out of the video data for the client and the minimal required server and client bandwidth. Further, according to the broadcast schedule construction of SCB, no jitter is experienced by the customer since only when the whole media data of one segment is fully downloaded, the playback the this segment can begin. In the smoothing-related schemes of the prior art, smoothing of the media traffic results in the addition of jitter.

Although the present invention has been particularly described with reference to the preferred embodiments thereof, it should be readily apparent to those of ordinary skill in the art that changes and modifications in the form and details may be made without departing from the spirit and scope of the invention. It is intended that the appended claims include such changes and modifications. 

1. A method for providing a media object to a client from a server coupled to the client via a connection, the media object being fragmented into segments in accordance with a fragmentation sequence from a first segment to a last segment, each segment comprising a respective number of frames of media content in a respective succession from a first frame to a last frame, the media content associated with each of the segments being provided on a corresponding stream in accordance with the succession from the first frame to the last frame, the method comprising the steps of: downloading media content at the client from a first number of the streams on the connection, the first number of the streams including the corresponding stream to the first segment; halting the downloading of media content from the corresponding stream to the first segment on the connection when the respective number of frames of the first segment have been received on the corresponding stream; downloading media content at the client from a next stream corresponding to a next segment in the fragmentation sequence on the connection after the halting step; and starting the step of downloading from the next stream at a point in the respective succession between the first frame and the last frame.
 2. A method according to claim 1, wherein the media content associated with each of the segments is continuously and periodically provided on a corresponding stream in accordance with the succession from the first frame to the last frame.
 3. A method according to claim 2, wherein each of the corresponding streams has an associated period.
 4. A method according to claim 3, wherein the associated period is the time required to download the number of frames of the segment corresponding to the stream.
 5. A method according to claim 1, wherein the corresponding stream to the first segment has a first bandwidth, and the next stream corresponding to the next segment has a second bandwidth different than the first bandwidth.
 6. A method according to claim 5, further comprising the step of: constraining the first bandwidth so as to provide a desired service latency.
 7. A method according to claim 6, wherein the constraining step includes the step of constraining the first bandwidth b_(m) ¹ associated with the first segment S¹ _(m) in accordance with a desired service latency w_(m) such that ${b_{m}^{1} = \frac{\sum\limits_{i \in S_{m}^{1}}f_{m}^{i}}{w_{m}}},$ wherein f_(m) ^(i) denotes the number of bits in the i-th frame of the media object.
 8. A method according to claim 5, further comprising the step of: constraining the second bandwidth in accordance with a time needed to play back all of the segments corresponding to the first number of streams at the client.
 9. A method according to claim 1, wherein the first number of streams corresponds to the maximum number of streams that the client can process.
 10. A method according to claim 1, further comprising the step of: constraining a total server bandwidth associated with the media object.
 11. A method according to claim 10, wherein the number of segments in the fragmentation sequence is K_(m), and wherein each of the corresponding streams has an associated bandwidth b^(i) _(m), the constraining step being performed so that the total server bandwidth B_(m) satisfies the equation $B_{m} = {\sum\limits_{i = 1}^{K_{m}}{b_{m}^{i}.}}$
 12. A method according to claim 1, further comprising the step of: constraining a maximum client bandwidth associated with the media object.
 13. A method according to claim 12, wherein the number of segments in the fragmentation sequence is K_(m), and wherein each of the corresponding streams has an associated bandwidth b^(j) _(m), and wherein the first number of streams is U_(m), the constraining step being performed so that the total client bandwidth B_(c,m)(S_(m)) satisfies the equation ${B_{c,m}\left( S_{m} \right)} = {\max\limits_{1 \leq i \leq {K_{m} - U_{m} + 1}}{\sum\limits_{j = i}^{i + U_{m} - 1}{b_{m}^{j}.}}}$
 14. A method according to claim 11, further comprising the step of: further constraining a maximum client bandwidth associated with the media object, wherein the first number of streams is U_(m), the further constraining step being performed so that the total client bandwidth B_(c,m)(S_(m)) satisfies the equation ${B_{c,m}\left( S_{m} \right)} = {\max\limits_{1 \leq i \leq {K_{m} - U_{m} + 1}}{\sum\limits_{j = i}^{i + U_{m} - 1}{b_{m}^{j}.}}}$
 15. A method according to claim 1, further comprising the step of: adjusting the respective number of frames comprising each segment so as to minimize a maximum server bandwidth and a maximum client bandwidth.
 16. A method according to claim 14, further comprising the step of: adjusting the respective number of frames comprising each segment so as to minimize the total server bandwidth and the total client bandwidth.
 17. A method according to claim 1, further comprising the step of: encoding the media object.
 18. A method according to claim 17, wherein the encoding step is performed in accordance with Variable Bit Rate (VBR) encoding.
 19. An apparatus for providing a media object to a client from a server coupled to the client via a connection, the media object being fragmented into segments in accordance with a fragmentation sequence from a first segment to a last segment, each segment comprising a respective number of frames of media content in a respective succession from a first frame to a last frame, the media content associated with each of the segments being provided on a corresponding stream in accordance with the succession from the first frame to the last frame, the apparatus comprising: means for downloading media content at the client from a first number of the streams on the connection, the first number of the streams including the corresponding stream to the first segment; means for halting the downloading of media content from the corresponding stream to the first segment on the connection when the respective number of frames of the first segment have been received on the corresponding stream; means for downloading media content at the client from a next stream corresponding to a next segment in the fragmentation sequence on the connection after an operation of the halting means; and means for starting operation of the means for downloading from the next stream at a point in the respective succession between the first frame and the last frame.
 20. An apparatus according to claim 19, wherein the media content associated with each of the segments is continuously and periodically provided on a corresponding stream in accordance with the succession from the first frame to the last frame.
 21. An apparatus according to claim 20, wherein each of the corresponding streams has an associated period.
 22. An apparatus according to claim 21, wherein the associated period is the time required to download the number of frames of the segment corresponding to the stream.
 23. An apparatus according to claim 19, wherein the corresponding stream to the first segment has a first bandwidth, and the next stream corresponding to the next segment has a second bandwidth different than the first bandwidth.
 24. An apparatus according to claim 23, further comprising: means for constraining the first bandwidth so as to provide a desired service latency.
 25. An apparatus according to claim 24, wherein the constraining means includes means for constraining the first bandwidth b_(m) ¹ associated with the first segment S¹ _(m) in accordance with a desired service latency w_(m) such that ${b_{m}^{1} = \frac{\sum\limits_{i \in S_{m}^{1}}^{\quad}\quad f_{m}^{i}}{w_{m}}},$ wherein ƒ_(m) ^(i) denotes the number of bits in the i-th frame of the media object.
 26. An apparatus according to claim 23, further comprising: means for constraining the second bandwidth in accordance with a time needed to play back all of the segments corresponding to the first number of streams at the client.
 27. An apparatus according to claim 19, wherein the first number of streams corresponds to the maximum number of streams that the client can process.
 28. An apparatus according to claim 19, further comprising: means for constraining a total server bandwidth associated with the media object.
 29. An apparatus according to claim 28, wherein the number of segments in the fragmentation sequence is K_(m), and wherein each of the corresponding streams has an associated bandwidth b^(i) _(m), the constraining means being operable so that the total server bandwidth B_(m) satisfies the equation $B_{m} = {\sum\limits_{i = 1}^{K_{m}}\quad{b_{m}^{i}.}}$
 30. An apparatus according to claim 19, further comprising: means for constraining a maximum client bandwidth associated with the media object.
 31. An apparatus according to claim 30, wherein the number of segments in the fragmentation sequence is K_(m), and wherein each of the corresponding streams has an associated bandwidth b^(i) _(m), and wherein the first number of streams is U_(m), the constraining means being operable so that the total client bandwidth B_(c,m)(S_(m)) satisfies the equation ${B_{c,m}\left( S_{m} \right)} = {\max\limits_{1 \leq i \leq {K_{m} - U_{m} + 1}}{\sum\limits_{j = i}^{i + U_{m} - 1}\quad{b_{m}^{j}.}}}$
 32. An apparatus according to claim 29, further comprising: means for further constraining a maximum client bandwidth associated with the media object, wherein the first number of streams is U_(m), the further constraining means being operable so that the total client bandwidth B_(c,m)(S_(m)) satisfies the equation ${B_{c,m}\left( S_{m} \right)} = {\max\limits_{1 \leq i \leq {K_{m} - U_{m} + 1}}{\sum\limits_{j = i}^{i + U_{m} - 1}\quad{b_{m}^{j}.}}}$
 33. An apparatus according to claim 19, further comprising: means for adjusting the respective number of frames comprising each segment so as to minimize a maximum server bandwidth and a maximum client bandwidth.
 34. An apparatus according to claim 32, further comprising: means for adjusting the respective number of frames comprising each segment so as to minimize the total server bandwidth and the total client bandwidth.
 35. An apparatus according to claim 19, further comprising: means for encoding the media object.
 36. An apparatus according to claim 35, wherein the encoding means is operable in accordance with Variable Bit Rate (VBR) encoding.
 37. An apparatus for providing a media object over a connection comprising: a media server having: a fragmenter that fragments the media object into a plurality of segments having a sequence from a first segment to a last segment; a plurality of streamers, each streamer being coupled to the fragmenter for receiving a respective one of the plurality of segments, each streamer being operable to periodically and continuously provide a stream of media data associated with its corresponding segment on the connection; and a media client coupled to the streamers to receive the streams of media data, the media client being operable to selectively cause media content from certain of the streams to be downloaded to the media client from the connection in accordance with the fragmentation of the media object and a number of streams that the media client can simultaneously receive for downloading, the media client being operable to cause media content from another stream corresponding to a successive segment in the sequence to be downloaded to the media client from the connection immediately upon the completion of downloading all the data corresponding to a previous segment.
 38. An apparatus according to claim 37, wherein each segment comprises a respective number of frames of media content in a respective succession from a first frame to a last frame, the media client being operable to cause media content from the another stream to be downloaded to the media client from the connection at a time corresponding to an interim frame in the succession between the first frame and the last frame.
 39. A method of fragmenting a media object into a fragmentation comprising a plurality K_(m) of segments, the segments having a sequence from a first segment to a last segment, the media object having a plurality N_(m) of frames of media data, the method comprising the steps of: initializing the fragmentation to K_(m)=N_(m) segments, each segment containing one frame; determining, for each of the K_(m) segments, a corresponding bandwidth required to download the segment; combining two successive segments in the sequence into a new segment; and controlling the combining step so as to minimize a total variance between the corresponding bandwidth for each of the K_(m) segments.
 40. A method according to claim 39, further comprising the step of: repeating the determining and combining steps until the total variance cannot be reduced. 